<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script type="text/javascript">
            /* 
                相等运算符用来比较两个值是否相等,
                    如果相等会返回true,否则返回false
                使用==来做相等运算。
                    - 当使用==来比较两个值时,如果值的类型不同,
                        则会自动进行类型转换,将其转换为相同的类型
                        然后再比较。

               不相等
                    不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
                        - 使用 != 来做不相等的运算
                        - 不相等也会对变量进行自动的类型转换,如果转换后相等也会返回false

               ===
                    全等
                        - 用来判断两个是否全等,和相等类似,不会做自动类型转换。
                            如果两个值类型不同,直接返回false
               !==
                    不全等
                        - 用来判断两个值是否不全等,和不等类似,不同的是它不会做类型转换
                            如果两个值类型不同,直接返回true
            */
            console.log(1 == 1); //true

            var a = 10;

            console.log(a == 4); //false

            //这里因为使用==进行判断,发生了类型转换,字符串1转成了数字1,然后进行的比较
            console.log("1" == 1); //相等true

            console.log(true == "1"); //true

            //null是特殊情况,null没有被转成0
            console.log(null == 0); //false


            /*
                 undefined衍生自null
                     所以这两个值做相等判断时,会返回true
            */
            console.log(undefined == null);


            //NaN不和任何值相等,包括他本身
            console.log(NaN == NaN);


            var b = NaN;
            //判断b的值是否是NaN
            console.log(b == NaN);

            /**
             * 可以通过isNaN()函数来判断是否是NaN
             */
            console.log(isNaN(b));

            console.log(10 != 5); //true
            console.log(10 != 10); //false
            console.log("adcd" != "abcd"); //false
            console.log("1" != 1); //false


            console.log("123" === 123); //false
            console.log(null === undefined);

            console.log(1 !== "1"); //true

        </script>
    </head>
    <body>

    </body>
</html>